#include "stdafx.h"
#include "Rendermeister.h"
#include "ray.h"
#include "sphere.h"
#include "triangle.h"
#include "material.h"
#include "camera.h"
#include "RayTracing.h"
#include "point.h"
#include "vector3.h"
#include "renderoptions.h"
#include "scene.h"
#include "intersection.h"
#include "picture.h"

#define MAX_LOADSTRING 100
using namespace std;

string	_renderOptions;		// -r/--render
string	_scene;				// -s/--scene
string	_camera;			// -c/--camera
string	_bitmapOutput;		// -o/--output

bool zapisano(false);

void dzialaj()
{
	scene Scena(_scene);

	renderoptions Opcje(_renderOptions);

	camera Kamera(_camera);

	RayTracing silnik1(&Scena,&Kamera,&Opcje);

	silnik1.render(_bitmapOutput);
}
int main(int argc, char *argv[])
{
	int numeropcji(1);

	while ((numeropcji < argc) && (argv[numeropcji][0]=='-'))
	{
		string opcja = argv[numeropcji];
		if (opcja=="-r" || opcja=="--render")
		{
			numeropcji++;
			_renderOptions = argv[numeropcji];
		}
		else if (opcja=="-s" ||  opcja=="--scene")
		{
			numeropcji++;
			_scene = argv[numeropcji];
		}
		else if (opcja=="-c" ||  opcja=="--camera")
		{
			numeropcji++;
			_camera = argv[numeropcji];
		}
		else if (opcja=="-o" ||  opcja=="--output")
		{
			numeropcji++;
			_bitmapOutput = argv[numeropcji];
		}
		else
			cout << "Nieznane opcje: " 
				 << argv[numeropcji] << endl;
		numeropcji++;
	}
	dzialaj();

	return(0);
}